package com.yuntsg.nnsfcp.test.bosspdfparsetest;

import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class En {
    @Data
    public static class StartAndEnd implements Serializable {
        private float start = 0.0f;
        private float end = 999999.99f;
    }

    // 预算表
    @Data
    public static class Resume implements Serializable {
        private String name = ""; // 姓名
        private String unit = ""; // 单位信息
        private String education = ""; // 教育经历
        private String work = ""; // 博士后工作经历
        private String scientific = ""; // 科研与学术工作经历（博士后工作经历除外）
        private String document = ""; // 曾使用其他证件信息
        private String fund = ""; // 近五年主持或参加的国家自然科学基金项目/课题
        private String project = ""; // 近五年主持或参加的其他科研项目/课题（国家自然科学基金项目除外）：
        private String representative = ""; // 一、代表性论著
        private String publication = ""; // 二、论著之外的代表性研究成果和学术奖励：
    }

    // 附件信息
    @Data
    public static class Annex implements Serializable {
        private String serialNumber = ""; // 序号
        private String annexName = ""; // 附件名称
        private String notes = ""; // 备注
        private String annexType = ""; // 附件类型
    }

    // 预算表annex
    @Data
    public static class Budget implements Serializable {
        private String serialNumber = ""; // 序号
        private String subjectName = ""; // 科目名称
        private String amountOfMoney = ""; // 金额
    }

    // 预算表annex
    @Data
    public static class BidArticle implements Serializable {
        private String type = ""; // 文献类型
        private String info = ""; // 文献信息
        private String doi = ""; // doi
    }

    // 总人数统计
    @Data
    public static class Total implements Serializable {
        private String totalPersonnelCount = ""; // 总人数
        private String seniorPositions = ""; // 高级职称
        private String intermediatePositions = ""; // 中级职称
        private String juniorPositions = ""; // 初级职称
        private String postdoc = ""; // 博士后
        private String phdStudent = ""; // 博士生
        private String masterStudent = ""; // 硕士生
        private String undergraduate = ""; // 本科生及其他学生
        private String others = ""; // 其他
    }

    // 项目基本信息
    @Data
    public static class Project implements Serializable {
        private String projectName = ""; // 项目名称
        private String englishName = ""; // 英文名称
        private String typesOfFunding = ""; // 资助类别
        private String subclassSpecification = ""; // 亚类说明
        private String explanatoryNote = ""; // 附注说明
        private String applicationCode = ""; // 申请代码
        private String researchPeriod = ""; // 研究期限
        private String researchDirection = ""; // 研究方向
        private String directCosts = ""; // 申请直接费用
        private String researchAttributes = ""; // 研究属性
        private String chineseKeywords = ""; // 中文关键词
        private String englishKeywords = ""; // 英文关键词
        private String chineseAbstract = ""; // 中文摘要
        private String englishAbstract = ""; // 英文摘要
    }

    // 主要参与者
    @Data
    public static class PrincipalInvestigator implements Serializable {
        private String number = ""; // 编号
        private String fullName = ""; // 姓名
        private String dateOfBirth = ""; // 出生年月
        private String gender = ""; // 性别
        private String title = ""; // 职称
        private String academicDegree = ""; // 学位
        private String workUnit = ""; // 工作单位
        private String divisionOfResponsibilities = ""; // 项目分工
        private String officeTelephone = ""; // 办公电话
        private String email = ""; // 电子邮箱
        private String IdentificationNumber = ""; // 证件号码
        private String perYearTime = ""; // 每年工作时间
    }

    // 依托单位信息
    @Data
    public static class HostInstitution implements Serializable {
        private String name = ""; // 名称
        private String contacts = ""; // 联系人
        private String emailAddress = ""; // 电子邮箱
        private String officeTelephone = ""; // 电话
        private String websiteAddress = ""; // 网站地址
        private String unitName = ""; // 单位名称
    }

    // 申请人信息
    @Data
    public static class Applicant implements Serializable {
        private String fullName = ""; // 姓名
        private String gender = ""; // 性别
        private String dateOfBirth = ""; // 出生年月
        private String nation = ""; // 民族
        private String academicDegree = ""; // 学位
        private String title = ""; // 职称
        private String postdoctoralResearcher = ""; // 是否在站博士后
        private String emailAddress = ""; // 电子邮箱
        private String officeTelephone = ""; // 办公电话
        private String countryOrArea = ""; // 国别或地区
        private String applyForHumanCategory = ""; // 申请人类别
        private String workUnit = ""; // 工作单位
        private String PersonalMailingAddress = ""; // 个人通讯地址
        private String mainResearchAreas = ""; // 主要研究领域
    }

    // 封面
    @Data
    public static class Cover implements Serializable {
        private String applicationCode = ""; // 申请代码
        private String receivingDepartment = ""; // 接收部门
        private String receiptDate = ""; // 收件日期
        private String applicationDate = ""; // 申报日期
        private String receivingNumber = ""; // 接收编号
        private String typesOfFunding = ""; // 资助类别
        private String subclassSpecification = ""; // 亚类说明
        private String explanatoryNote = ""; // 附注说明
        private String projectName = ""; // 项目名称
        private String applicant = ""; // 申请人
        private String brid = ""; // BRID
        private String officeTelephone = ""; // 办公电话
        private String supportingUnit = ""; // 依托单位
        private String mailingAddress = ""; // 通讯地址
        private String postalCode = ""; // 邮政编码
        private String workTelephone = ""; // 单位电话
        private String applicantphone = ""; // 申请人电话
        private String emailAddress = ""; // 电子邮箱
    }

    // 字体和字号的大小
    @Data
    public static class FontSize implements Serializable {
        private String font = "";
        private int size = 0;
    }

    // 字符串，字体和字号
    @Data
    public static class TableCell implements Serializable {
        private String text = "";
        private String font = "";
        private int size = 0;
        private float left = 0.0f;
        private float top = 0.0f;
        private float width = 0.0f;
        private float height = 0.0f;
        private int page = 0;
        private int sort = 0;
    }

    // 表格的列columns(即有多少个left，有多少列)，表格的行rows(即有多少个top，有多少行)，比如：9=5，可以理解为9列的数据，有5行。
    @Data
    public static class TableText {
        private String font = "";
        private int size = 0;
        private String text = "";
        private float left = 0.0f;
        private float top = 0.0f;
        private float width = 0.0f;
        private float height = 0.0f;
        private int page = 0;
        private int sort = 0;
        private List<TableCell> tableCells = new ArrayList<>();
        private int rows = 0;
        // rows为行号，order为行内的第几个，即同一行也可能有多个，从1开始，为什么从1开始？因为默认为0，即null时也是0。
        private int rowsOrder = 0;
        private int columns = 0;
    }

}
